package conf

import (
	"d-serv-go/server/core/bean"
	"d-serv-go/server/core/consts"
	"d-serv-go/server/core/db"
)

var ConfMgr = newConfMgr()

type confMgr struct {
	bean.Bean
}

func newConfMgr() *confMgr {
	return &confMgr{
		*bean.NewBean(""),
	}
}

func (c *confMgr) GetConfVal(key string) string {
	ctx := db.Ctx()
	value := ""
	var extWhere string
	if !ctx.IsEmpyty(consts.THREAD_DICT_EXT_WHERE) { //忽略自定义字典过滤条件
		extWhere = ctx.GetStr(consts.THREAD_DICT_EXT_WHERE)
		ctx.Remove(consts.THREAD_DICT_EXT_WHERE)

	}
	var item *bean.Bean
	if len(ctx.GetStr(consts.CMPYCODE)) > 0 && db.DictMgr.Contains(consts.SY_COMM_CONFIG, key) { //如果存在私有公司先判断是否在私有字典中
		item = db.DictMgr.GetItem(consts.SY_COMM_CONFIG, key)
		if item != nil && (item.GetInt("FLAG") != consts.NO_INT) {
			value = item.GetStr("NAME")
		}
	}

	if len(value) > 0 && db.DictMgr.Contains(consts.SY_COMM_CONFIG_PUBLIC, key) { //再判断是否在共有字典中
		item = db.DictMgr.GetItem(consts.SY_COMM_CONFIG_PUBLIC, key)
		if item != nil && (item.GetInt("FLAG") != consts.NO_INT) {
			value = item.GetStr("NAME")
		}
	}
	if len(extWhere) > 0 { //恢复字典自定义过滤条件环境变量
		ctx.SetStr(consts.THREAD_DICT_EXT_WHERE, extWhere)
	}
	return value
}
